import request from '@/utils/request'

/**
 * 获取订单列表
 */
export function getWorkOrderListAPI() {
  return request.post('/api/workOrderInfo/listAll').then(res => {
    // 根据实际API返回格式，提取data字段
    if (res && res.code === 0 && res.data) {
      return res.data;
    }
    // 如果格式不符合预期，返回空数组
    return [];
  }).catch(error => {
    console.error('获取订单列表失败:', error);
    // 出错时返回空数组
    return [];
  });
}



/**
 * 根据客户ID获取订单列表
 * @param {number} customerId - 客户ID
 */
export function getWorkOrderListByCustomerIdAPI(customerId) {
  // 确保客户ID存在且为有效值
  if (!customerId) {
    console.error('客户ID无效:', customerId);
    return Promise.resolve([]);
  }
  
  // 调用后端接口获取指定客户的订单列表
  return request.post(`/api/workOrderInfo/getByCustomerId?customerId=${customerId}`).then(res => {
    // 根据实际API返回格式，提取data字段
    // 检查响应中的code字段确保请求成功（code === 0）
    if (res && res.code === 0 && res.data) {
      return res.data;
    }
    
    // 处理特定的错误码
    if (res && res.code !== 0) {
      console.error('获取客户订单列表失败，错误码:', res.code, '错误信息:', res.msg);
    }
    
    // 如果响应格式不符合预期，输出详细调试信息
    return [];
  }).catch(error => {
    console.error('获取客户订单列表失败:', error);
    // 出错时返回空数组
    return [];
  });
}

/**
 * 根据ID获取工单详情
 * @param {number} id - 工单ID
 * @returns {Promise}
 */
/**
 * 根据ID获取工单详情
 * @param {number} id - 工单ID
 * @returns {Promise}
 */
export function getWorkOrderDetailAPI(id) {
  // 确保ID存在且为有效值
  if (!id) {
    console.error('订单ID无效:', id);
    return Promise.resolve(null);
  }
  
  // 确保正确传递参数，使用params方式
  return request.post('/api/workOrderInfo/get?id=' + id).then(res => {
    console.log('获取工单详情API响应:', res);
    // 根据实际API返回格式，提取data字段
    // 检查响应中的code字段确保请求成功（code === 0）
    if (res && res.code === 0 && res.data) {
      return res; // 返回完整响应，而不是只返回data部分
    }
    
    // 处理特定的错误码
    if (res && res.code === 100005) {
      console.error('服务器繁忙，请稍后重试！');
    } else if (res && res.code !== 0) {
      console.error('获取订单详情失败，错误码:', res.code, '错误信息:', res.msg);
    }
    
    // 如果格式不符合预期，返回完整响应
    return res;
  }).catch(error => {
    console.error('获取订单详情失败:', error);
    // 出错时返回错误信息
    return { code: -1, msg: '网络请求失败: ' + (error.message || '') };
  });
}

/**
 * 提交工单评价
 * @param {Object} evaluationData - 评价数据
 * @returns {Promise}
 */

/**
 * 提交工单评价
 * @param {Object} evaluationData - 评价数据
 * @returns {Promise}
 */
export function submitWorkOrderEvaluation(evaluationData) {
  return request.post('/api/workOrderEvaluation/add', evaluationData).then(res => {
    // 检查响应中的code字段确保请求成功（code === 0）
    if (res && res.code === 0) {
      return { success: true, data: res.data, message: res.msg || '评价提交成功' };
    } else {
      return { success: false, data: null, message: res?.msg || '评价提交失败' };
    }
  }).catch(error => {
    console.error('提交评价失败:', error);
    return { success: false, data: null, message: '网络错误，评价提交失败: ' + (error.message || '') };
  });
}

/**
 * 添加工单
 * @param {Object} workOrderData - 工单数据
 * @returns {Promise}
 */
export function addWorkOrderAPI(workOrderData) {
  return request.post('/api/workOrderInfo/add', workOrderData).then(res => {
    // 检查响应中的code字段确保请求成功（code === 0）
    if (res && res.code === 0) {
      return { success: true, data: res.data, message: res.msg || '工单提交成功' };
    } else {
      return { success: false, data: null, message: res.msg || '工单提交失败' };
    }
  }).catch(error => {
    console.error('添加工单失败:', error);
    return { success: false, data: null, message: '网络错误，工单提交失败' };
  });
}

/**
 * 取消订单
 * @param {number} orderId - 订单ID
 * @returns {Promise}
 */
export function cancelWorkOrderAPI(orderId) {
  // 确保订单ID存在且为有效值
  if (!orderId) {
    console.error('订单ID无效:', orderId);
    return Promise.resolve({ success: false, data: null, message: '订单ID无效' });
  }
  
  // 调用后端接口取消订单
  return request.post(`/api/workOrderInfo/cancel?id=${orderId}`).then(res => {
    // 根据实际API返回格式处理
    // 检查响应中的code字段确保请求成功（code === 0）
    if (res && res.code === 0) {
      return { success: true, data: res.data, message: res.msg || '订单取消成功' };
    } else {
      console.error('取消订单失败，错误码:', res.code, '错误信息:', res.msg);
      return { success: false, data: null, message: res.msg || '订单取消失败' };
    }
  }).catch(error => {
    console.error('取消订单失败:', error);
    return { success: false, data: null, message: '网络错误，订单取消失败' };
  });
}